home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / game / role / silver.lha / Doks / Gespraeche.txt < prev    next >
Text File  |  1996-11-17  |  9KB  |  321 lines

  1.  
  2. Gespraeche        02.11.1996
  3. ==========
  4.  
  5. Die Gespraeche der Spielercharaktere werden durch eine eigene
  6. "Programmiersprache" gesteuert.
  7.  
  8. Das sogenannte "Gespraechsprogramm" ist in einer gewoehnlichen
  9. Textdatei abgelegt, die den Namen "Gespraech_<nr>.txt" traegt,
  10. wobei <nr> eine Zahl ist.
  11.  
  12. WICHTIG: Es duerfen maximal 250 Zeichen pro Textzeile verwendet werden.
  13.  
  14. Wenn ein "Gespraechsprogramm" ausgefuehrt wird, wird in der ersten
  15. Zeile des "Programms" begonnen und Zeile fuer Zeile ausgefuehrt.
  16.  
  17.  
  18. PRAEPROZESSOR
  19. -------------
  20.  
  21. Die Datei "Gespraech_<nr>.txt" wird beim Einlesen schon bearbeitet,
  22. um Speicher zu sparen
  23.  
  24.     - Alle Kommentare werden entfernt
  25.     - Alle Tabulatoren werden durch EIN Leerzeichen ersetzt
  26.     - Fuehrende Leerzeichen werden entfernt
  27.     - Nachfolgende Leerzeichen werden entfernt
  28.  
  29. Entstehen dadurch Leerzeilen, so werden diese erst gar nicht eingelesen.
  30.  
  31. ACHTUNG: Die Anzahl der hiernach verbleibenden Textzeilen ist
  32.      programmintern begrenzt: Dies ist die Ausgabe "Max. Zeilenzahl
  33.      in Gespraechsdatei" im Hauptmenu (zur Zeit 250 Zeilen).
  34.  
  35.  
  36. Danach wird die im Speicher befindliche Datei weiterbearbeitet:
  37.   - bei Sprunganweisungen (ausgenommen der INPUT-Befehl) werden
  38.     die Sprungmarken durch Zeilennummern ersetzt. Dadurch ist es
  39.     waehrend eines Gespraechs nicht mehr noetig, die Sprungmarke zu
  40.     suchen, sondern man das Programm kann die Zeilen direkt anspringen
  41.   - die Befehle werden durch Zahlencode ersetzt (=> spart Platz)
  42.  
  43.  
  44. BEFEHLE
  45. -------
  46.  
  47. In jede Zeile kann nur ein Befehl stehen, wobei allerdings fuehrende
  48. Leerzeichen zulaessig sind.
  49.  
  50. AUSNAHME: In einer Zeile kann ein Befehl stehen, der von einem
  51.       Kommentar gefolgt werden kann - schliesslich ist ein
  52.       Kommentar kein Befehl.
  53.  
  54. WICHTIG:  Befehle sind "case-sensitive", d.h. sie muessen genau so,
  55.       wie hier angegeben, geschrieben werden - die Gross- bzw.
  56.       Kleinschreibung muss genau eingehalten werden.
  57.  
  58.  
  59. &<text>     Kommentar
  60.         Alle dem Kaufmannsund folgenden Zeichen bis zum
  61.         Zeilenende werden ignoriert
  62.  
  63.  
  64. END        Gespraechsende
  65.         Dieser Befehl beendet das Gespraech an dieser Stelle
  66.  
  67.         ACHTUNG: Es darf kein "Open End" geben - das Gespraech
  68.              muss immer durch ein END abgeschlossen sein
  69.  
  70.  
  71. #<text>     Textausgabe
  72.         Der dem Kreuz folgende Text wird auf dem Bildschirm
  73.         ausgegeben.
  74.         Nach der Textausgabe wird der gesamte Text um eine
  75.         Zeile hochgescrollt.
  76.  
  77.         In <text> duerfen folgende Steueranweisungen vorkommen:
  78.  
  79.           Die []-Anweisung:
  80.               <text1>[<text2>]<text3>
  81.               Hierdurch wird der <text2> farblich hervorgehoben
  82.               Bsp: Mein Name ist [Ragor], der Grossartige
  83.               Hierdurch wird das Wort "Ragor" hervorgehoben.
  84.  
  85.           Die *-Anweisung
  86.               Der Stern '*' wird durch den Namen des Charakters
  87.               ersetzt, der gerade redet.
  88.               Z.B.: Der Charakter Ragor redet.
  89.  
  90.               Dann wird die Zeile:
  91.                #Hallo *!
  92.               ausgegeben als:
  93.                Hallo Ragor!
  94.  
  95.               ACHTUNG: Ein Name kann bis zu 20 Zeichen lang sein,
  96.                    es muss daher darauf geachtet werden, dass
  97.                    noch genug Platz in der Zeile ist, um den
  98.                    Namen einfuegen zu koennen.
  99.  
  100. §<text>     Sprungmarke
  101.         Der hinter dem Paragraphenzeichen stehende Text wird als
  102.         Name der Sprungmarke betrachtet.
  103.         Sprungmarken sind "case-insensitiv", d.h. es wird nicht
  104.         auf Gross- und Kleinschreibung geachtet.
  105.         Der Grund dafuer ist der Befehl INPUT - durch die
  106.         Nichtbeachtung der Rechtschreibung wird die Abfrage
  107.         wesentlich vereinfacht...
  108.  
  109.         Bsp: §Verkauf
  110.  
  111.         ACHTUNG: Sprungmarkennamen muessen eindeutig sein!!
  112.  
  113.  
  114. GOTO <text>    Sprungbefehl
  115.         Der hinter dem GOTO folgende Text wird als Name der
  116.         der anzuspringenden Sprungmarke angesehen
  117.  
  118.         Bsp: GOTO Verkauf
  119.  
  120.  
  121. INPUT <arg1> ... <arg n>
  122.         Benutzergelenkter Sprungbefehl
  123.  
  124.         Erwartet eine Texteingabe. Diese Texteingabe wird mit den
  125.         angegebenen Argumenten verglichen (case-insensitiv).
  126.         Gibt es eine Uebereinstimmung zwischen einem Wort in dem
  127.         eingegebenen Text und den angegebenen Argumenten, so wird
  128.         zu der Sprungmarke mit diesem Namen gesprungen.
  129.         Wird keine Uebereinstimmung gefunden, so wird in der
  130.         folgenden Zeile fortgesetzt
  131.         Die Argumente werden durch Leerzeichen getrennt angegeben
  132.         Nach erfolgter Eingabe wird der Text um eine Zeile
  133.         hochgescrollt.
  134.  
  135.         ACHTUNG: Eine leere Eingabe, d.h. druecken der RETURN-Taste
  136.         ohne Eingabe beendet das Gespraech!
  137.  
  138.         Bsp: INPUT Name Beruf Alter
  139.  
  140.  
  141. SET <nr>
  142.         Setzt die interne Merkvariable mit der Nummer <nr>
  143.         Das Programm wird in der naechsten Zeile fortgesetzt
  144.  
  145.         Bsp: SET 2
  146.  
  147.  
  148. UNSET <nr>
  149.         Loescht die interne Merkvariable mit der Nummer <nr>
  150.         Das Programm wird in der naechsten Zeile fortgesetzt
  151.  
  152.         Bsp: UNSET 3
  153.  
  154.         HINWEIS: Die Merkervariablen haben nur zwei Zustaende,
  155.              naemlich gesetzt oder ungesetzt.
  156.  
  157. IFSET <nr> <posmarke>
  158.         Falls die interne Merkvariable mit der Nummer <nr>
  159.         gesetzt ist wird zur Sprungmarke mit dem Namen <posmarke>
  160.         gesprungen. Ist sie nicht gesetzt, so wird in der
  161.         naechsten Programmzeile fortgefahren
  162.  
  163.  
  164. INKEY
  165.         Gibt einen Hinweistext in der untersten Zeile aus und
  166.         wartet auf Tastendruck/Maustaste. Nach erfolgtem Druck
  167.         wird die Zeile geloescht. Es erfolgt kein Scrolling
  168.  
  169.  
  170.  
  171. YN <posmarke>
  172.         Wartet auf die Eingabe von "Ja" oder "Nein"
  173.         Bei Eingabe von "Ja" wird zur Marke "posmarke" gesprungen,
  174.         bei Eingabe von "Nein" wird in der folgenden Zeile
  175.         fortgesetzt
  176.  
  177. EP <anz>
  178.         <anz> Erfahrungspunkte werden an die Gruppe verteilt
  179.         Es wird der Text:
  180.         "Die Gruppe erhaelt <anz> Erfahrungspunkte"
  181.         ausgegeben.
  182.  
  183. IFUNSET <nr> <posmarke>
  184.         Falls die interne Merkvariable mit der Nummer <nr>
  185.         NICHT gesetzt ist wird zur Sprungmarke mit dem
  186.         Namen <posmarke> gesprungen Ist sie nicht gesetzt, so
  187.         wird in der naechsten Zeile fortgefahren
  188.  
  189. GETITEM <name>
  190.         Die Gruppe erhaelt den Gegenstand mit Namen <name>.
  191.         Dieser Gegenstandsname muss eindeutig sein (und,
  192.         natuerlich, existieren)
  193.         Bsp: GETITEM Schwert
  194.  
  195.         Bemerkung: Da beim Erhalten eines Gegenstands der
  196.         Textausgabebereich geloescht wird, sollte vor
  197.         dem Aufruf von GETITEM der Befehl INKEY verwendet werden.
  198.  
  199.  
  200.  
  201. GIVEITEM <name> <marke>
  202.         Es soll ein Mitglied der Gruppe ausgewaehlt werden, welches
  203.         den Gegenstand mit Namen <name> hergibt. Dieser Name muss
  204.         NICHT eindeutig sein, d.h. das Mitglied kann mehrere
  205.         Gegenstaende dieses Namens bei sich tragen
  206.         Wird kein Gruppenmitglied ausgewaehlt oder hat das
  207.         gewaehlte Gruppenmitglied den Gegenstand nicht, dann
  208.         wird zu <marke> gesprungen.
  209.         Andernfalls wird in der naechsten Zeile fortgesetzt und
  210.         der Gegenstand wird abgegeben.
  211.         Bsp: GIVEITEM Schwert HatEsNicht
  212.  
  213.  
  214.  
  215. MONEY <anz>
  216.         <anz> Silberstuecke werden an die Gruppe verteilt.
  217.         Es wird der Text:
  218.         "Die Gruppe erhaelt <anz> Silberstuecke"
  219.         ausgegeben.
  220.  
  221. GIVEMONEY <anz> <marke>
  222.         Es soll ein Mitglied der Gruppe ausgewaehlt werden, welches
  223.         <anz> Geldstuecke hergibt.
  224.         Wird kein Gruppenmitglied ausgewaehlt oder hat es nicht
  225.         genug Geld, dann wird zu <marke> gesprungen.
  226.         Andernfalls wird in der naechsten Zeile fortgesetzt und
  227.         das Geld wird abgegeben.
  228.         Bsp: GIVEMONEY 20 HatKeinGeld
  229.  
  230. FOLLOW <nr> <fehlermarke>
  231.         Die Charakterdatei mit der Nummer <nr> wird geladen und der
  232.         darin enthaltene Charakter der Gruppe hinzugefuegt
  233.         Tritt hierbei ein Fehler auf (Datei nicht gefunden, kein
  234.         Platz in der Gruppe, ...) dann wird zur Marke
  235.         <fehlermarke> gesprungen
  236.  
  237. TEST <nr> <negmarke>
  238.         Fuehrt eine Menschenkenntnisprobe modifiziert mit <nr> durch
  239.            <nr> > 0 Erschwernis
  240.            <nr> < 0 Erleichterung
  241.         Misslingt die Probe, dann wird zur <negmarke> gesprungen
  242.         Andernfalls wird in der naechsten Zeile fortgesetzt
  243.  
  244.         Z.B. kann man hiermit den Spielern Zusatzinfos zukommen
  245.         lassen - zur Illustration ein kurzes Beispiel:
  246.  
  247.             #Allerbeste Ware! Nur 10000 Goldstuecke...
  248.             TEST 0 misslungen
  249.             #Du hast das Gefuehl, der Haendler luegt.
  250.  
  251.             §misslungen
  252.             #Wollt ihr es kaufen?
  253.  
  254.  
  255. ATTACK <nr> <anz> <siegmarke>
  256.         Die Gruppe wird von <anz> Gegnern mit der Nummer <nr>
  257.         angegriffen. Im Falle des Sieges wird zu <siegmarke>
  258.         gesprungen
  259.         Andernfalls wird in der naechsten Zeile fortgesetzt.
  260.         Kann der angegebene Gegner nicht geladen werden (d.h. tritt
  261.         ein Fehler auf), dann wird in der naechsten Zeile fortgesetzt
  262.         der Kampf wird also als verloren gewertet.
  263.  
  264.         Bsp:
  265.             ATTACK 1 4 sieg
  266.  
  267.  
  268. RACE <nr> <posmarke>
  269.         Falls der Sprecher zur Rasse <nr> gehoert
  270.         wird zur Sprungmarke mit dem Namen <posmarke> gesprungen
  271.         Ist dies nicht der Fall, so wird in der naechsten Zeile
  272.         fortgefahren
  273.  
  274.         Zur Zeit gibt es folgende Rassen:
  275.  
  276.             Rasse        <nr>
  277.             SONSTIGE      0
  278.             MENSCH          1
  279.             TROLL          2
  280.             ELF          3
  281.             GOBLIN          4
  282.             KOBOLD          5
  283.             ZWERG          6
  284.             ORK          7
  285.             HALBELF       8
  286.             HALBORK       9
  287.             HOBBIT         10
  288.  
  289.  
  290.         Bsp:
  291.             RACE 1 IstMensch
  292.  
  293.         Bemerkung: Hiermit kann man Abneigungen/Vorlieben von
  294.                Gespraechspartnern gegenueber bestimmten Rassen
  295.                einbauen
  296.  
  297. LEARN <nr>
  298.         Der Sprecher lernt die Rezeptur <nr>
  299.             0 = Heiltrank
  300.  
  301.         siehe auch: Rezepte.txt
  302.  
  303.         Bsp: LEARN 0
  304.  
  305.  
  306.  
  307. STYLE-GUIDE
  308. ===========
  309.  
  310. * In jedem Gespraech sollten folgende Begriffe akzeptiert werden:
  311.  
  312.     ende  - Um das Gespraech zu beenden
  313.     name  - Um den Namen des Gespraechspartners zu erfahren
  314.     beruf - Um den Beruf des Gespraechspartners zu erfahren
  315.     alter - Um das Alter des Gespraechspartners zu erfahren
  316.  
  317. * Erscheinen im Text Schluesselwoerter, dann sollten sie mit
  318.   den Klammern [ ] hervorgehoben werden.
  319.  
  320.  
  321.